import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { resolve } from 'path'

export default defineConfig(({ mode }) => {
  const isLib = mode === 'lib'
  
  if (isLib) {
    return {
      plugins: [vue()],
      build: {
        lib: {
          entry: resolve(__dirname, 'src/index.js'),
          name: 'HyperMarkdown',
          fileName: (format) => `hyper-markdown.${format}.js`
        },
        // 禁用CSS代码分割，将所有CSS打包到单个文件
        cssCodeSplit: false,
        // 禁用代码分割，将所有JS打包到单个文件
        rollupOptions: {
          external: ['vue'],
          output: {
            globals: {
              vue: 'Vue'
            },
            // 禁用代码分割，将所有JS打包到单个文件
            inlineDynamicImports: true,
            // 控制文件输出格式，确保没有hash名称
            assetFileNames: (assetInfo) => {
              if (assetInfo.name && assetInfo.name.endsWith('.css')) {
                return 'hyper-markdown.css'
              }
              return '[name][extname]'
            }
          }
        }
      }
    }
  }
  
  return {
    plugins: [vue()],
  }
})